package com.jcark.utilscode.ext

import android.content.Context
import android.view.View
import androidx.fragment.app.Fragment

/**
 * Description:尺寸扩展方法 <br>
 * @author King.Zi<br>
 * @date 2022/11/24<br>
 * Email: 78688689@qq.com
 */

/**
 * dp值转换为px
 */
fun Context.dp2px(dp: Float) = (dp * resources.displayMetrics.density + 0.5f).toInt()

/**
 * px值转换成dp
 */
fun Context.px2dp(px: Float) = (px / resources.displayMetrics.density + 0.5f).toInt()

/**
 * sp值转换为px
 */
fun Context.sp2px(sp: Float) = (sp * resources.displayMetrics.scaledDensity + 0.5f).toInt()

/**
 * px值转换成dp
 */
fun Context.px2dsp(px: Float) = (px / resources.displayMetrics.scaledDensity + 0.5f).toInt()

/**
 * dp值转换为px
 */
fun Fragment.dp2px(dp: Float) = (dp * resources.displayMetrics.density + 0.5f).toInt()

/**
 * px值转换成dp
 */
fun Fragment.px2dp(px: Float) = (px / resources.displayMetrics.density + 0.5f).toInt()

/**
 * sp值转换为px
 */
fun Fragment.sp2px(sp: Float) = (sp * resources.displayMetrics.scaledDensity + 0.5f).toInt()

/**
 * px值转换成dp
 */
fun Fragment.px2dsp(px: Float) = (px / resources.displayMetrics.scaledDensity + 0.5f).toInt()

/**
 * dp值转换为px
 */
fun View.dp2px(dp: Float) = (dp * resources.displayMetrics.density + 0.5f).toInt()

/**
 * px值转换成dp
 */
fun View.px2dp(px: Float) = (px / resources.displayMetrics.density + 0.5f).toInt()

/**
 * sp值转换为px
 */
fun View.sp2px(sp: Float) = (sp * resources.displayMetrics.scaledDensity + 0.5f).toInt()

/**
 * px值转换成dp
 */
fun View.px2dsp(px: Float) = (px / resources.displayMetrics.scaledDensity + 0.5f).toInt()

/**
 * 获取屏幕宽度
 */
val Context.screenWidth
    get() = resources.displayMetrics.widthPixels

/**
 * 获取屏幕高度
 */
val Context.screenHeight
    get() = resources.displayMetrics.heightPixels

/**
 * 获取屏幕宽度
 */
val Fragment.screenWidth
    get() = resources.displayMetrics.widthPixels

/**
 * 获取屏幕高度
 */
val Fragment.screenHeight
    get() = resources.displayMetrics.heightPixels
